package services

import (
	"encoding/json"
	"gorm.io/gorm"
	"mygo/app/models"
	"strings"
)

//	var foreList models.ForeList
//	ctl.db.Where("code = ?", "yy").First(&foreList)

// 根据code获取foreList
func GetForeListByCode(code string, db *gorm.DB) models.ForeList {
	var foreList models.ForeList
	db.Where("code = ?", code).First(&foreList)
	return foreList
}

// JsonToStruct
func JsonToStruct(data []byte, forecast *models.Forecast) {
	//将json转换为struct
	json.Unmarshal(data, &forecast)
}

//  "data": [
//    {
//      "stid": "HY-01",
//      "stdName": "瓯江口海域",
//      "ptime": "2023-12-17 15:00:00",
//      "fh": "24",
//      "waveHeight": "1.0米，明天傍晚减小到0.6米",
//      "waveLevel": "轻浪",
//      "temp": "16.1",
//      "lon": "120.98",
//      "lat": "27.88380818741856"
//    },
//    {
//      "stid": "HY-02",
//      "stdName": "洞头东部海域",
//      "ptime": "2023-12-17 15:00:00",
//      "fh": "24",
//      "waveHeight": "1.9米，明天傍晚减小到1.2米",
//      "waveLevel": "中浪到轻浪",
//      "temp": "16.3",
//      "lon": "121.42421963689993",
//      "lat": "27.86766761162523"
//    },
//    {
//      "stid": "HY-03",
//      "stdName": "南麂列岛海域",
//      "ptime": "2023-12-17 15:00:00",
//      "fh": "24",
//      "waveHeight": "2.1米，明天傍晚减小到1.4米",
//      "waveLevel": "中浪",
//      "temp": "17.4",
//      "lon": "121.10265418449968",
//      "lat": "27.40576353996142"
//    },
//    {
//      "stid": "HY-04",
//      "stdName": "乐清湾海域",
//      "ptime": "2023-12-17 15:00:00",
//      "fh": "24",
//      "waveHeight": "1.0米，明天傍晚减小到0.6米",
//      "waveLevel": "轻浪",
//      "temp": "16.0",
//      "lon": "121.05581072973971",
//      "lat": "28.057999820778906"
//    }
//  ]

// 通过海域名称获取海域的lon和lat
func GetLonLatByName(name string) (lon, lat string) {
	switch name {
	case "瓯江口海域":
		lon = "120.98"
		lat = "27.88380818741856"
	case "洞头东部海域":
		lon = "121.42421963689993"
		lat = "27.86766761162523"
	case "南麂列岛海域":
		lon = "121.10265418449968"
		lat = "27.40576353996142"
	case "乐清湾海域":
		lon = "121.05581072973971"
		lat = "28.057999820778906"
	}
	return lon, lat
}

// GetWlevel
func GetWlevel(pubType, level string) string {
	//pubType为消息返回消息，pubType包含解除返回解除，否则根据level中包含蓝色、黄色、橙色、红色返回不同的颜色
	if strings.Contains(pubType, "解除") {
		return "解除"
	}
	if strings.Contains(pubType, "消息") {
		return "消息"
	}
	if strings.Contains(level, "蓝色") {
		return "蓝色"
	}
	if strings.Contains(level, "黄色") {
		return "黄色"
	}
	if strings.Contains(level, "橙色") {
		return "橙色"
	}
	if strings.Contains(level, "红色") {
		return "红色"
	}
	return ""
}

// GetContent
func GetContent(content string) string {
	contentArr := strings.Split(content, "\n")
	var contentStr string
	for _, v := range contentArr {
		contentStr += "<p>" + v + "</p>"
	}
	return contentStr
}
